home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / ANTENNA / YAGIU112 / SELF.C < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-20  |  1.2 KB  |  45 lines

  1. #include <stdio.h>
  2. #ifndef i386
  3. #include <stdlib.h> 
  4. #endif
  5. #include <math.h>
  6. #include <errno.h>
  7. #include "yagi.h"
  8. extern int errno;
  9.  
  10. void self_impedance(int i, double frequency, int driven, int parasitic, double **data, double **impedance)
  11. {
  12.     int j, row, column_real, column_imag, max_data, ii;
  13.     double lambda, k, x , length, beta, eta, diameter,bl;
  14.     double mu, epsilon, radius, real, Rr, Xm;
  15.  
  16.     ii=i;
  17.     /* Put the complex value of impedance for each element into
  18.     the array. This is a complex, as the array sizes for
  19.     driven and parasitic elements are different */
  20.  
  21.     /* first compute the wavelength */
  22.     lambda=3e8/frequency;
  23.  
  24.     row=i;                    /* write data to row, column_real_or_imag */
  25.     column_real=2*i-1;
  26.     column_imag=2*i;
  27.     if(i <= driven)
  28.     {
  29.         max_data=MAX_DRIVEN;
  30.     }
  31.     else if (i > driven)                 /* parasitic element */
  32.     {
  33.         max_data=MAX_PARASITIC;
  34.         i-=driven;                            /* read from i-driven */
  35.     }
  36.     diameter=data[i][DIAMETER];
  37.     length=data[i][LENGTH];
  38.     j=2*ii-1;
  39.     /* Use method in 'Antenna Theory' Baluns ' */
  40.     radius=diameter/2.0;   /* radius */
  41.     self(radius,length,lambda,&real,&x);
  42.     impedance[row][column_imag]= x; /* write imaginary data to array */
  43.     impedance[ii][j]= real;  
  44. }
  45.